package org.example.shoppingsystem.service;

import org.example.shoppingsystem.dao.UserDao;
import org.example.shoppingsystem.dao.UserDaoImpl;
import org.example.shoppingsystem.model.User;

import java.sql.SQLException;

public class UserServiceImpl implements UserService {
    // 创建 UserDao 实例，用于与数据库进行交互
    private UserDao userDao = new UserDaoImpl();

    /**
     * 用户登录方法，返回登录是否成功。
     * @param account 用户输入的账号
     * @param password 用户输入的密码
     * @return 登录成功返回 true，失败返回 false
     * @throws SQLException 数据库操作异常
     */
    @Override
    public boolean login(String account, String password) throws SQLException {
        // 根据账号查询用户信息
        User user = userDao.findUserByAccount(account);
        if (user != null) {
            // 比较查询到的用户密码与输入的密码是否一致
            return user.getPassword().equals(password);
        }
        return false;
    }
    @Override
    public boolean register(User user) throws SQLException {
        // 先检查账号是否已存在
        User existingUser = userDao.findUserByAccount(user.getAccount());
        if (existingUser != null) {
            return false; // 账号已存在，注册失败
        }
        int rows = userDao.registerUser(user);
        return rows > 0;
    }
    /**
     * 根据账号查询用户信息。
     * @param account 要查询的账号
     * @return 查询到的用户对象，如果不存在则返回 null
     * @throws SQLException 数据库操作异常
     */
    @Override
    public User findUserByAccount(String account) throws SQLException {
        return userDao.findUserByAccount(account);
    }
}